package com.work.mapper.main;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.work.dto.main.ShipBillStorageSearchDTO;
import com.work.entity.main.ShipBillStorage;
import com.work.vo.main.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 场存Mapper
 *
 * @author ：dujianyu
 * @since ：Created in 2024/3/14 9:51
 */
public interface ShipBillStorageMapper extends BaseMapper<ShipBillStorage> {

    /**
     * 列表
     * @param dto 搜索参数
     * @param page 分页
     * @return List<ShipBillStorageVO>
     * @author dujianyu
     * @since 2024/3/26 8:58
     */
    List<ShipBillStorageVO> selectShipBillStorageList(@Param("dto") ShipBillStorageSearchDTO dto, IPage page);

    /**
     * 合计
     * @param dto 搜索条件
     * @return PieceTonVO
     * @author dujianyu
     * @since 2024/7/16 14:49
     */
    PieceTonVO selectShipBillStorageTotal(@Param("dto") ShipBillStorageSearchDTO dto);

    /**
     * 货物库存汇总统计-货场分页
     * @param dto 搜索条件
     * @param page 分页
     * @return List<StorageByPositionVO>
     * @author dujianyu
     * @since 2024/7/4 11:07
     */
    List<StorageByPositionVO> selectStorageByPositionList(@Param("dto") ShipBillStorageSearchDTO dto, IPage page);

    /**
     * 货物库存汇总统计-货场统计
     * @param dto 搜索条件
     * @return PieceTonVO
     * @author dujianyu
     * @since 2024/7/4 11:11
     */
    PieceTonVO selectStorageByPositionTotal(@Param("dto") ShipBillStorageSearchDTO dto);

    /**
     *货物库存汇总统计-货名分页
     * @param dto 搜索条件
     * @param page 分页
     * @return List<StorageByCargoVO>
     * @author dujianyu
     * @since 2024/7/4 14:37
     */
    List<StorageByCargoVO> selectStorageByCargoList(@Param("dto") ShipBillStorageSearchDTO dto, IPage page);

    /**
     * 货物库存汇总统计-货名统计
     * @param dto 搜索条件
     * @return PieceTonVO
     * @author dujianyu
     * @since 2024/7/4 14:41
     */
    PieceTonVO selectStorageByCargoTotal(@Param("dto") ShipBillStorageSearchDTO dto);

    /**
     *货物库存汇总统计-船名分页
     * @param dto 搜索条件
     * @param page 分页
     * @return List<StorageByShipVO>
     * @author dujianyu
     * @since 2024/7/4 15:15
     */
    List<StorageByShipVO> selectStorageByShipList(@Param("dto") ShipBillStorageSearchDTO dto, IPage page);

    /**
     * 货物库存汇总统计-船名统计
     * @param dto 搜索条件
     * @return PieceTonVO
     * @author dujianyu
     * @since 2024/7/4 15:19
     */
    PieceTonVO selectStorageByShipTotal(@Param("dto") ShipBillStorageSearchDTO dto);

    /**
     * 货物库存汇总统计-货场详情列表
     * @param dto 搜索条件
     * @param page 分页
     * @return List<StorageByPositionDetailVO>
     * @author dujianyu
     * @since 2024/7/8 9:04
     */
    List<StorageByPositionDetailVO> selectStorageByPositionDetailList(@Param("dto") ShipBillStorageSearchDTO dto, IPage page);

    /**
     * 货物库存汇总统计-货场理货列表
     * @param dto 搜索条件
     * @param page 分页
     * @return ist<StorageByPositionTallyVO>
     * @author dujianyu
     * @since 2024/7/8 11:03
     */
    List<StorageByPositionTallyVO> selectStorageByPositionTallyList(@Param("dto") ShipBillStorageSearchDTO dto, IPage page);

    /**
     * 货物库存汇总统计-货名详情列表
     * @param dto 搜索条件
     * @param page 分页
     * @return List<StorageByCargoDetailVO>
     * @author dujianyu
     * @since 2024/7/8 14:02
     */
    List<StorageByCargoDetailVO> selectStorageByCargoDetailList(@Param("dto") ShipBillStorageSearchDTO dto, IPage page);

    /**
     * 货物库存汇总统计-船名详情列表
     * @param dto 搜索条件
     * @param page 分页
     * @return List<StorageByShipDetailVO>
     * @author dujianyu
     * @since 2024/7/8 15:11
     */
    List<StorageByShipDetailVO> selectStorageByShipDetailList(@Param("dto") ShipBillStorageSearchDTO dto, IPage page);

}
